package com.sinog.auth.util;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @desc 针对单点删除无效cookie
 * @author ybl
 * @date 2023/3/23
 */
public class CookiesUtils {

    /**
     * 针对单点删除无效cookie
     * @param request 请求
     * @param response 响应
     */
    public static void delectCookieByName(HttpServletRequest request,HttpServletResponse response) throws NullPointerException {
        Cookie[] cookies = request.getCookies();
        if(cookies != null) {
            for(int i = 1; i < cookies.length; i++) {
                Cookie cookie = cookies[i];
                // 默认值是-1，即：关闭浏览器时就清除cookie;
                // 当设置为0的时候：创建完cookie，使用后马上就删除;
                // 因为时间到了，又因为，cookie没有清除方法，所以设置为 0，就相当于清除方法;
                // 当设置时间大于0，当时间到达后就会自动删除
                //设置cookie有效时间为0
                cookie.setMaxAge(0);
                //不设置存储路径
                cookie.setPath("/");
                response.addCookie(cookie);
            }
        }
    }
}